home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 March: Reference Library / Dev.CD Mar 97 RL.toast / mac / Technical Documentation / Macintosh Technical Notes / technotes / tn / 1076_MsgTest.hqx / MsgTest / MacMsgTest / MsgUtil.c < prev    next >
Encoding:
Text File  |  1996-08-29  |  1.9 KB  |  104 lines

  1. // •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
  2. // MsgUtil.c
  3. // 
  4. // July 31, 1996
  5. // By Ben Manuto
  6. // 
  7. // A set of utility routines for making the driver calls for messaging.
  8. //
  9. // © 1996 by Apple Computer, Inc., all rights reserved.
  10. //
  11. // •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
  12.  
  13.  
  14.  
  15. #include    <Types.h>
  16. #include    <LowMem.h>
  17. #include    <Devices.h>
  18. #include    "Messaging.h"
  19. #include    "MsgUtil.h"
  20.  
  21.  
  22. short gRefNum;                            // Our refNum for the .Symbiosis driver.
  23.  
  24. // •••••••••••••••••••••••••
  25.  
  26. UInt16 InitMessageSupport(void)
  27. {
  28.     return OpenDriver(kDriverName, &gRefNum);
  29. }
  30.  
  31.     
  32. // •••••••••••••••••••••••••
  33.  
  34. SInt16 RegisterMessage(UInt32 selector, UInt32 count)
  35. {
  36. SBParamBlockRec pBlk;
  37. SInt16 result;
  38.     
  39.     pBlk.ioCRefNum = gRefNum;
  40.     pBlk.ioVRefNum = 0;
  41.     pBlk.ioCompletion = 0;
  42.     pBlk.csCode = eRegisterMessage;
  43.     pBlk.csPtr = (void *) selector;
  44.     pBlk.csData = count;
  45.     
  46.     result = PBControlImmed((ParmBlkPtr) &pBlk);
  47.     
  48.     if (result)
  49.         return (SInt16) result;
  50.     
  51.     return (SInt16) pBlk.csPtr;
  52. }
  53.  
  54.  
  55. // •••••••••••••••••••••••••
  56.  
  57. UInt16 InstallMsgHandler(MsgRecElemPtr msgRecElemPtr)
  58. {
  59. SBParamBlockRec pBlk;
  60.     
  61.     pBlk.ioCRefNum = gRefNum;
  62.     pBlk.ioVRefNum = 0;
  63.     pBlk.ioCompletion = 0;
  64.     pBlk.csCode = eInstallMsgHandler;
  65.     pBlk.csPtr = (void *) msgRecElemPtr;
  66.     
  67.     return PBControlImmed((ParmBlkPtr) &pBlk );
  68.  
  69. }
  70.  
  71.  
  72. // •••••••••••••••••••••••••
  73.  
  74. UInt16 RemoveMsgHandler(MsgRecElemPtr msgRecElemPtr)
  75. {
  76. SBParamBlockRec pBlk;
  77.     
  78.     pBlk.ioCRefNum = gRefNum;
  79.     pBlk.ioVRefNum = 0;
  80.     pBlk.ioCompletion = 0;
  81.     pBlk.csCode = eRemoveMsgHandler;
  82.     pBlk.csPtr = (void *) msgRecElemPtr;
  83.     
  84.     return PBControlImmed((ParmBlkPtr) &pBlk );
  85. }
  86.  
  87.  
  88. // •••••••••••••••••••••••••
  89.  
  90. UInt16 SendMessage( MsgPBlkPtr msgPBlkPtr )
  91. {
  92. SBParamBlockRec pBlk;
  93.     
  94.     pBlk.ioCRefNum = gRefNum;
  95.     pBlk.ioVRefNum = 0;
  96.     pBlk.ioCompletion = 0;
  97.     pBlk.csCode = eSendMessage;
  98.     pBlk.csPtr = (void *) msgPBlkPtr;
  99.     
  100.     return PBControlImmed((ParmBlkPtr) &pBlk );
  101.  
  102. }
  103.  
  104.